package datatypes.r2.foundation;

import datatypes.r2.quantities.INT;

/**
 * A value that contains distinct values in no particular order.
 * 
 * @author Obama
 * 
 * @param <T>
 */
public interface SET<T> extends ANY {
	COMP<T> comparator();

	BL contains(T element);

	BL contains(SET<T> subset);

	BL isEmpty();

	BL notEmpty();

	INT cardinality();

	SET<T> union(SET<T> otherset);

	SET<T> union(T element);

	SET<T> except(SET<T> otherset);

	SET<T> except(T element);

	SET<T> intersection(SET<T> otherset);
}
